home *** CD-ROM | disk | FTP | other *** search
/ Halting the Hacker - A P…uide to Computer Security / Halting the Hacker - A Practical Guide to Computer Security.iso / rfc / rfc1772.txt < prev    next >
Text File  |  1997-04-01  |  44KB  |  1,068 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                         Y. Rekhter
  8. Request for Comments: 1772        T.J. Watson Research Center, IBM Corp.
  9. Obsoletes: 1655                                                 P. Gross
  10. Category: Standards Track                                            MCI
  11.                                                                  Editors
  12.                                                               March 1995
  13.  
  14.  
  15.        Application of the Border Gateway Protocol in the Internet
  16.  
  17. Status of this Memo
  18.  
  19.    This document specifies an Internet standards track protocol for the
  20.    Internet community, and requests discussion and suggestions for
  21.    improvements.  Please refer to the current edition of the "Internet
  22.    Official Protocol Standards" (STD 1) for the standardization state
  23.    and status of this protocol.  Distribution of this memo is unlimited.
  24.  
  25. Abstract
  26.  
  27.    This document, together with its companion document, "A Border
  28.    Gateway Protocol 4 (BGP-4)", define an inter-autonomous system
  29.    routing protocol for the Internet.  "A Border Gateway Protocol 4
  30.    (BGP-4)" defines the BGP protocol specification, and this document
  31.    describes the usage of the BGP in the Internet.
  32.  
  33.    Information about the progress of BGP can be monitored and/or
  34.    reported on the BGP mailing list (bgp@ans.net).
  35.  
  36. Acknowledgements
  37.  
  38.    This document was originally published as RFC 1164 in June 1990,
  39.    jointly authored by Jeffrey C. Honig (Cornell University), Dave Katz
  40.    (MERIT), Matt Mathis (PSC), Yakov Rekhter (IBM), and Jessica Yu
  41.    (MERIT).
  42.  
  43.    The following also made key contributions to RFC 1164 -- Guy Almes
  44.    (ANS, then at Rice University), Kirk Lougheed (cisco Systems), Hans-
  45.    Werner Braun (SDSC, then at MERIT), and Sue Hares (MERIT).
  46.  
  47.    We like to explicitly thank Bob Braden (ISI) for the review of the
  48.    previous version of this document.
  49.  
  50.    This updated version of the document is the product of the IETF BGP
  51.    Working Group with Phill Gross (MCI) and Yakov Rekhter (IBM) as
  52.    editors.
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Rekhter & Gross                                                 [Page 1]
  59.  
  60. RFC 1772                   BGP-4 Application                  March 1995
  61.  
  62.  
  63.    John Moy (Proteon) contributed Section 7 "Required set of supported
  64.    routing policies".
  65.  
  66.    Scott Brim (Cornell University) contributed the basis for Section 8
  67.    "Interaction with other exterior routing protocols".
  68.  
  69.    Most of the text in Section 9 was contributed by Gerry Meyer
  70.    (Spider).
  71.  
  72.    Parts of the Introduction were taken almost verbatim from [3].
  73.  
  74.    We would like to acknowledge Dan Long (NEARNET) and Tony Li (cisco
  75.    Systems) for their review and comments on the current version of the
  76.    document.
  77.  
  78.    The work of Yakov Rekhter was supported in part by the National
  79.    Science Foundation under Grant Number NCR-9219216.
  80.  
  81. 1. Introduction
  82.  
  83.    This memo describes the use of the Border Gateway Protocol (BGP) [1]
  84.    in the Internet environment. BGP is an inter-Autonomous System
  85.    routing protocol. The network reachability information exchanged via
  86.    BGP provides sufficient information to detect routing loops and
  87.    enforce routing decisions based on performance preference and policy
  88.    constraints as outlined in RFC 1104 [2]. In particular, BGP exchanges
  89.    routing information containing full AS paths and enforces routing
  90.    policies based on configuration information.
  91.  
  92.    As the Internet has evolved and grown over in recent years, it has
  93.    become painfully evident that it is soon to face several serious
  94.    scaling problems. These include:
  95.  
  96.        - Exhaustion of the class-B network address space. One
  97.          fundamental cause of this problem is the lack of a network
  98.          class of a size which is appropriate for mid-sized
  99.          organization; class-C, with a maximum of 254 host addresses, is
  100.          too small while class-B, which allows up to 65534 addresses, is
  101.          too large to be densely populated.
  102.  
  103.        - Growth of routing tables in Internet routers are beyond the
  104.          ability of current software (and people) to effectively manage.
  105.  
  106.        - Eventual exhaustion of the 32-bit IP address space.
  107.  
  108.    It has become clear that the first two of these problems are likely
  109.    to become critical within the next one to three years.  Classless
  110.    inter-domain routing (CIDR) attempts to deal with these problems by
  111.  
  112.  
  113.  
  114. Rekhter & Gross                                                 [Page 2]
  115.  
  116. RFC 1772                   BGP-4 Application                  March 1995
  117.  
  118.  
  119.    proposing a mechanism to slow the growth of the routing table and the
  120.    need for allocating new IP network numbers. It does not attempt to
  121.    solve the third problem, which is of a more long-term nature, but
  122.    instead endeavors to ease enough of the short to mid-term
  123.    difficulties to allow the Internet to continue to function
  124.    efficiently while progress is made on a longer-term solution.
  125.  
  126.    BGP-4 is an extension of BGP-3 that provides support for routing
  127.    information aggregation and reduction based on the Classless inter-
  128.    domain routing architecture (CIDR) [3].  This memo describes the
  129.    usage of BGP-4 in the Internet.
  130.  
  131.    All of the discussions in this paper are based on the assumption that
  132.    the Internet is a collection of arbitrarily connected Autonomous
  133.    Systems. That is, the Internet will be modeled as a general graph
  134.    whose nodes are AS's and whose edges are connections between pairs of
  135.    AS's.
  136.  
  137.    The classic definition of an Autonomous System is a set of routers
  138.    under a single technical administration, using an interior gateway
  139.    protocol and common metrics to route packets within the AS and using
  140.    an exterior gateway protocol to route packets to other AS's. Since
  141.    this classic definition was developed, it has become common for a
  142.    single AS to use several interior gateway protocols and sometimes
  143.    several sets of metrics within an AS. The use of the term Autonomous
  144.    System here stresses the fact that, even when multiple IGPs and
  145.    metrics are used, the administration of an AS appears to other AS's
  146.    to have a single coherent interior routing plan and presents a
  147.    consistent picture of which destinations are reachable through it.
  148.  
  149.    AS's are assumed to be administered by a single administrative
  150.    entity, at least for the purposes of representation of routing
  151.    information to systems outside of the AS.
  152.  
  153. 2. BGP Topological Model
  154.  
  155.    When we say that a connection exists between two AS's, we mean two
  156.    things:
  157.  
  158.       Physical connection:  There is a shared Data Link subnetwork
  159.       between the two AS's, and on this shared subnetwork each AS has at
  160.       least one border gateway belonging to that AS. Thus the border
  161.       gateway of each AS can forward packets to the border gateway of
  162.       the other AS without resorting to Inter-AS or Intra-AS routing.
  163.  
  164.       BGP connection:  There is a BGP session between BGP speakers in
  165.       each of the AS's, and this session communicates those routes that
  166.       can be used for specific destinations via the advertising AS.
  167.  
  168.  
  169.  
  170. Rekhter & Gross                                                 [Page 3]
  171.  
  172. RFC 1772                   BGP-4 Application                  March 1995
  173.  
  174.  
  175.       Throughout this document we place an additional restriction on the
  176.       BGP speakers that form the BGP connection: they must themselves
  177.       share the same Data Link subnetwork that their border gateways
  178.       share. Thus, a BGP session between adjacent AS's requires no
  179.       support from either Inter-AS or Intra-AS routing. Cases that do
  180.       not conform to this restriction fall outside the scope of this
  181.       document.
  182.  
  183.    Thus, at each connection, each AS has one or more BGP speakers and
  184.    one or more border gateways, and these BGP speakers and border
  185.    gateways are all located on a shared Data Link subnetwork. Note that
  186.    BGP speakers do not need to be a border gateway, and vice versa.
  187.    Paths announced by a BGP speaker of one AS on a given connection are
  188.    taken to be feasible for each of the border gateways of the other AS
  189.    on the same shared subnetwork, i.e. indirect neighbors are allowed.
  190.  
  191.    Much of the traffic carried within an AS either originates or
  192.    terminates at that AS (i.e., either the source IP address or the
  193.    destination IP address of the IP packet identifies a host internal to
  194.    that AS).  Traffic that fits this description is called "local
  195.    traffic". Traffic that does not fit this description is called
  196.    "transit traffic". A major goal of BGP usage is to control the flow
  197.    of transit traffic.
  198.  
  199.    Based on how a particular AS deals with transit traffic, the AS may
  200.    now be placed into one of the following categories:
  201.  
  202.       stub AS: an AS that has only a single connection to one other AS.
  203.       Naturally, a stub AS only carries local traffic.
  204.  
  205.       multihomed AS: an AS that has connections to more than one other
  206.       AS, but refuses to carry transit traffic.
  207.  
  208.       transit AS: an AS that has connections to more than one other AS,
  209.       and is designed (under certain policy restrictions) to carry both
  210.       transit and local traffic.
  211.  
  212.    Since a full AS path provides an efficient and straightforward way of
  213.    suppressing routing loops and eliminates the "count-to-infinity"
  214.    problem associated with some distance vector algorithms, BGP imposes
  215.    no topological restrictions on the interconnection of AS's.
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Rekhter & Gross                                                 [Page 4]
  227.  
  228. RFC 1772                   BGP-4 Application                  March 1995
  229.  
  230.  
  231. 3. BGP in the Internet
  232.  
  233. 3.1 Topology Considerations
  234.  
  235.    The overall Internet topology may be viewed as an arbitrary
  236.    interconnection of transit, multihomed, and stub AS's.  In order to
  237.    minimize the impact on the current Internet infrastructure, stub and
  238.    multihomed AS's need not use BGP.  These AS's may run other protocols
  239.    (e.g., EGP) to exchange reachability information with transit AS's.
  240.    Transit AS's using BGP will tag this information as having been
  241.    learned by some method other than BGP. The fact that BGP need not run
  242.    on stub or multihomed AS's has no negative impact on the overall
  243.    quality of inter-AS routing for traffic that either destined to or
  244.    originated from the stub or multihomed AS's in question.
  245.  
  246.    However, it is recommended that BGP be used for stub and multihomed
  247.    AS's as well. In these situations, BGP will provide an advantage in
  248.    bandwidth and performance over some of the currently used protocols
  249.    (such as EGP).  In addition, this would reduce the need for the use
  250.    of default routes and in better choices of Inter-AS routes for
  251.    multihomed AS's.
  252.  
  253. 3.2 Global Nature of BGP
  254.  
  255.    At a global level, BGP is used to distribute routing information
  256.    among multiple Autonomous Systems. The information flows can be
  257.    represented as follows:
  258.  
  259.                     +-------+         +-------+
  260.               BGP   |  BGP  |   BGP   |  BGP  |   BGP
  261.            ---------+       +---------+       +---------
  262.                     |  IGP  |         |  IGP  |
  263.                     +-------+         +-------+
  264.  
  265.                     <-AS A-->         <--AS B->
  266.  
  267.    This diagram points out that, while BGP alone carries information
  268.    between AS's, both BGP and an IGP may carry information across an AS.
  269.    Ensuring consistency of routing information between BGP and an IGP
  270.    within an AS is a significant issue and is discussed at length later
  271.    in Appendix A.
  272.  
  273. 3.3 BGP Neighbor Relationships
  274.  
  275.    The Internet is viewed as a set of arbitrarily connected AS's.
  276.    Routers that communicate directly with each other via BGP are known
  277.    as BGP speakers. BGP speakers can be located within the same AS or in
  278.    different AS's.  BGP speakers in each AS communicate with each other
  279.  
  280.  
  281.  
  282. Rekhter & Gross                                                 [Page 5]
  283.  
  284. RFC 1772                   BGP-4 Application                  March 1995
  285.  
  286.  
  287.    to exchange network reachability information based on a set of
  288.    policies established within each AS.  For a given BGP speaker, some
  289.    other BGP speaker with which the given speaker communicates is
  290.    referred to as an external peer if the other speaker is in a
  291.    different AS, while if the other speaker is in the same AS it is
  292.    referred to as an internal peer.
  293.  
  294.    There can be as many BGP speakers as deemed necessary within an AS.
  295.    Usually, if an AS has multiple connections to other AS's, multiple
  296.    BGP speakers are needed. All BGP speakers representing the same AS
  297.    must give a consistent image of the AS to the outside. This requires
  298.    that the BGP speakers have consistent routing information among them.
  299.    These gateways can communicate with each other via BGP or by other
  300.    means. The policy constraints applied to all BGP speakers within an
  301.    AS must be consistent. Techniques such as using a tagged IGP (see
  302.    A.2.2) may be employed to detect possible inconsistencies.
  303.  
  304.    In the case of external peers, the peers must belong to different
  305.    AS's, but share a common Data Link subnetwork. This common subnetwork
  306.    should be used to carry the BGP messages between them. The use of BGP
  307.    across an intervening AS invalidates the AS path information. An
  308.    Autonomous System number must be used with BGP to specify which
  309.    Autonomous System the BGP speaker belongs to.
  310.  
  311. 4. Requirements for Route Aggregation
  312.  
  313.    A conformant BGP-4 implementation is required to have the ability to
  314.    specify when an aggregated route may be generated out of partial
  315.    routing information. For example, a BGP speaker at the border of an
  316.    autonomous system (or group of autonomous systems) must be able to
  317.    generate an aggregated route for a whole set of destination IP
  318.    addresses (in BGP-4 terminology such a set is called the Network
  319.    Layer Reachability Information or NLRI) over which it has
  320.    administrative control (including those addresses it has delegated),
  321.    even when not all of them are reachable at the same time.
  322.  
  323.    A conformant implementation may provide the capability to specify
  324.    when an aggregated NLRI may be generated.
  325.  
  326.    A conformant implementation is required to have the ability to
  327.    specify how NLRI may be de-aggregated.
  328.  
  329.    A conformant implementation is required to support the following
  330.    options when dealing with overlapping routes:
  331.  
  332.        - Install both the less and the more specific routes
  333.  
  334.        - Install the more specific route only
  335.  
  336.  
  337.  
  338. Rekhter & Gross                                                 [Page 6]
  339.  
  340. RFC 1772                   BGP-4 Application                  March 1995
  341.  
  342.  
  343.        - Install the less specific route only
  344.  
  345.        - Install neither route
  346.  
  347.    Certain routing policies may depend on the NLRI (e.g. "research"
  348.    versus "commercial"). Therefore, a BGP speaker that performs route
  349.    aggregation should be cognizant, if possible, of potential
  350.    implications on routing policies when aggregating NLRI.
  351.  
  352. 5. Policy Making with BGP
  353.  
  354.    BGP provides the capability for enforcing policies based on various
  355.    routing preferences and constraints. Policies are not directly
  356.    encoded in the protocol. Rather, policies are provided to BGP in the
  357.    form of configuration information.
  358.  
  359.    BGP enforces policies by affecting the selection of paths from
  360.    multiple alternatives and by controlling the redistribution of
  361.    routing information.  Policies are determined by the AS
  362.    administration.
  363.  
  364.    Routing policies are related to political, security, or economic
  365.    considerations. For example, if an AS is unwilling to carry traffic
  366.    to another AS, it can enforce a policy prohibiting this. The
  367.    following are examples of routing policies that can be enforced with
  368.    the use of BGP:
  369.  
  370.      1.  A multihomed AS can refuse to act as a transit AS for other
  371.          AS's.  (It does so by only advertising routes to destinations
  372.          internal to the AS.)
  373.  
  374.      2.  A multihomed AS can become a transit AS for a restricted set of
  375.          adjacent AS's, i.e., some, but not all, AS's can use the
  376.          multihomed AS as a transit AS. (It does so by advertising its
  377.          routing information to this set of AS's.)
  378.  
  379.      3.  An AS can favor or disfavor the use of certain AS's for
  380.          carrying transit traffic from itself.
  381.  
  382.    A number of performance-related criteria can be controlled with the
  383.    use of BGP:
  384.  
  385.      1.  An AS can minimize the number of transit AS's. (Shorter AS
  386.          paths can be preferred over longer ones.)
  387.  
  388.      2.  The quality of transit AS's. If an AS determines that two or
  389.          more AS paths can be used to reach a given destination, that AS
  390.          can use a variety of means to decide which of the candidate AS
  391.  
  392.  
  393.  
  394. Rekhter & Gross                                                 [Page 7]
  395.  
  396. RFC 1772                   BGP-4 Application                  March 1995
  397.  
  398.  
  399.          paths it will use. The quality of an AS can be measured by such
  400.          things as diameter, link speed, capacity, tendency to become
  401.          congested, and quality of operation. Information about these
  402.          qualities might be determined by means other than BGP.
  403.  
  404.      3.  Preference of internal routes over external routes.
  405.  
  406.    For consistency within an AS, equal cost paths, resulting from
  407.    combinations of policies and/or normal route selection procedures,
  408.    must be resolved in a consistent fashion.
  409.  
  410.    Fundamental to BGP is the rule that an AS advertises to its
  411.    neighboring AS's only those routes that it uses. This rule reflects
  412.    the "hop-by-hop" routing paradigm generally used by the current
  413.    Internet.
  414.  
  415. 6. Path Selection with BGP
  416.  
  417.    One of the major tasks of a BGP speaker is to evaluate different
  418.    paths from itself to a set of destination covered by an address
  419.    prefix, select the best one, apply appropriate policy constraints,
  420.    and then advertise it to all of its BGP neighbors. The key issue is
  421.    how different paths are evaluated and compared.  In traditional
  422.    distance vector protocols (e.g., RIP) there is only one metric (e.g.,
  423.    hop count) associated with a path. As such, comparison of different
  424.    paths is reduced to simply comparing two numbers. A complication in
  425.    Inter-AS routing arises from the lack of a universally agreed-upon
  426.    metric among AS's that can be used to evaluate external paths.
  427.    Rather, each AS may have its own set of criteria for path evaluation.
  428.  
  429.    A BGP speaker builds a routing database consisting of the set of all
  430.    feasible paths and the list of destinations (expressed as address
  431.    prefixes) reachable through each path.  For purposes of precise
  432.    discussion, it's useful to consider the set of feasible paths for a
  433.    set of destinations associated with a given address prefix. In most
  434.    cases, we would expect to find only one feasible path. However, when
  435.    this is not the case, all feasible paths should be maintained, and
  436.    their maintenance speeds adaptation to the loss of the primary path.
  437.    Only the primary path at any given time will ever be advertised.
  438.  
  439.    The path selection process can be formalized by defining a complete
  440.    order over the set of all feasible paths to a set of destinations
  441.    associated with a given address prefix.  One way to define this
  442.    complete order is to define a function that maps each full AS path to
  443.    a non-negative integer that denotes the path's degree of preference.
  444.    Path selection is then reduced to applying this function to all
  445.    feasible paths and choosing the one with the highest degree of
  446.    preference.
  447.  
  448.  
  449.  
  450. Rekhter & Gross                                                 [Page 8]
  451.  
  452. RFC 1772                   BGP-4 Application                  March 1995
  453.  
  454.  
  455.    In actual BGP implementations, the criteria for assigning degree of
  456.    preferences to a path are specified as configuration information.
  457.  
  458.    The process of assigning a degree of preference to a path can be
  459.    based on several sources of information:
  460.  
  461.      1.  Information explicitly present in the full AS path.
  462.  
  463.      2.  A combination of information that can be derived from the full
  464.          AS path and information outside the scope of BGP (e.g., policy
  465.          routing constraints provided as configuration information).
  466.  
  467.    Possible criteria for assigning a degree of preference to a path are:
  468.  
  469.        - AS count. Paths with a smaller AS count are generally better.
  470.  
  471.        - Policy considerations. BGP supports policy-based routing based
  472.          on the controlled distribution of routing information.  A BGP
  473.          speaker may be aware of some policy constraints (both within
  474.          and outside of its own AS) and do appropriate path selection.
  475.          Paths that do not comply with policy requirements are not
  476.          considered further.
  477.  
  478.        - Presence or absence of a certain AS or AS's in the path. By
  479.          means of information outside the scope of BGP, an AS may know
  480.          some performance characteristics (e.g., bandwidth, MTU, intra-
  481.          AS diameter) of certain AS's and may try to avoid or prefer
  482.          them.
  483.  
  484.        - Path origin. A path learned entirely from BGP (i.e., whose
  485.          endpoint is internal to the last AS on the path) is generally
  486.          better than one for which part of the path was learned via EGP
  487.          or some other means.
  488.  
  489.        - AS path subsets. An AS path that is a subset of a longer AS
  490.          path to the same destination should be preferred over the
  491.          longer path.  Any problem in the shorter path (such as an
  492.          outage) will also be a problem in the longer path.
  493.  
  494.        - Link dynamics. Stable paths should be preferred over unstable
  495.          ones. Note that this criterion must be used in a very careful
  496.          way to avoid causing unnecessary route fluctuation. Generally,
  497.          any criteria that depend on dynamic information might cause
  498.          routing instability and should be treated very carefully.
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Rekhter & Gross                                                 [Page 9]
  507.  
  508. RFC 1772                   BGP-4 Application                  March 1995
  509.  
  510.  
  511. 7. Required set of supported routing policies
  512.  
  513. Policies are provided to BGP in the form of configuration
  514. information.  This information is not directly encoded in the
  515. protocol. Therefore, BGP can provide support for very complex routing
  516. policies. However, it is not required that all BGP implementations
  517. support such policies.
  518.  
  519. We are not attempting to standardize the routing policies that must
  520. be supported in every BGP implementation; we strongly encourage all
  521. implementors to support the following set of routing policies:
  522.  
  523.      1.  BGP implementations should allow an AS to control announcements
  524.          of BGP-learned routes to adjacent AS's.  Implementations should
  525.          also support such control with at least the granularity of a
  526.          single address prefix.  Implementations should also support
  527.          such control with the granularity of an autonomous system,
  528.          where the autonomous system may be either the autonomous system
  529.          that originated the route, or the autonomous system that
  530.          advertised the route to the local system (adjacent autonomous
  531.          system).  Care must be taken when a BGP speaker selects a new
  532.          route that can't be announced to a particular external peer,
  533.          while the previously selected route was announced to that peer.
  534.          Specifically, the local system must explicitly indicate to the
  535.          peer that the previous route is now infeasible.
  536.  
  537.      2.  BGP implementations should allow an AS to prefer a particular
  538.          path to a destination (when more than one path is available).
  539.          At the minimum an implementation shall support this
  540.          functionality by allowing to administratively assign a degree
  541.          of preference to a route based solely on the IP address of the
  542.          neighbor the route is received from. The allowed range of the
  543.          assigned degree of preference shall be between 0 and 2^(31) -
  544.          1.
  545.  
  546.      3.  BGP implementations should allow an AS to ignore routes with
  547.          certain AS's in the AS_PATH path attribute.  Such function can
  548.          be implemented by using the technique outlined in [2], and by
  549.          assigning "infinity" as "weights" for such AS's. The route
  550.          selection process must ignore routes that have "weight" equal
  551.          to "infinity".
  552.  
  553. 8. Interaction with other exterior routing protocols
  554.  
  555.    The guidelines suggested in this section are consistent with the
  556.    guidelines presented in [3].
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Rekhter & Gross                                                [Page 10]
  563.  
  564. RFC 1772                   BGP-4 Application                  March 1995
  565.  
  566.  
  567.    An AS should advertise a minimal aggregate for its internal
  568.    destinations with respect to the amount of address space that it is
  569.    actually using.  This can be used by administrators of non-BGP 4 AS's
  570.    to determine how many routes to explode from a single aggregate.
  571.  
  572.    A route that carries the ATOMIC_AGGREGATE path attribute shall not be
  573.    exported into either BGP-3 or EGP2, unless such an exportation can be
  574.    accomplished without exploding the NLRI of the route.
  575.  
  576. 8.1 Exchanging information with EGP2
  577.  
  578.    This document suggests the following guidelines for exchanging
  579.    routing information between BGP-4 and EGP2.
  580.  
  581.    To provide for graceful migration, a BGP speaker may participate in
  582.    EGP2, as well as in BGP-4. Thus, a BGP speaker may receive IP
  583.    reachability information by means of EGP2 as well as by means of
  584.    BGP-4.  The information received by EGP2 can be injected into BGP-4
  585.    with the ORIGIN path attribute set to 1.  Likewise,  the information
  586.    received via BGP-4 can be injected into EGP2 as well. In the latter
  587.    case, however, one needs to be aware of the potential information
  588.    explosion when a given IP prefix received from BGP-4 denotes a set of
  589.    consecutive A/B/C class networks.  Injection of BGP-4 received NLRI
  590.    that denotes IP subnets requires the BGP speaker to inject the
  591.    corresponding network into EGP2.  The local system shall provide
  592.    mechanisms to control the exchange of reachability information
  593.    between EGP2 and BGP-4.  Specifically, a conformant implementation is
  594.    required to support all of the following options when injecting BGP-4
  595.    received reachability information into EGP2:
  596.  
  597.        - inject default only (0.0.0.0); no export of any other NLRI
  598.  
  599.        - allow controlled deaggregation, but only of specific routes;
  600.          allow export of non-aggregated NLRI
  601.  
  602.        - allow export of only non-aggregated NLRI
  603.  
  604.    The exchange of routing information via EGP2 between a BGP speaker
  605.    participating in BGP-4 and a pure EGP2 speaker may occur  only at the
  606.    domain (autonomous system) boundaries.
  607.  
  608. 8.2 Exchanging information with BGP-3
  609.  
  610.    This document suggests the following guidelines for exchanging
  611.    routing information between BGP-4 and BGP-3.
  612.  
  613.    To provide for graceful migration, a BGP speaker may participate in
  614.    BGP-3, as well as in BGP-4. Thus, a BGP speaker may receive IP
  615.  
  616.  
  617.  
  618. Rekhter & Gross                                                [Page 11]
  619.  
  620. RFC 1772                   BGP-4 Application                  March 1995
  621.  
  622.  
  623.    reachability information by means of BGP-3, as well as by means of
  624.    BGP-4.
  625.  
  626.    A BGP speaker may inject the information received by BGP-4 into BGP-3
  627.    as follows.
  628.  
  629.    If an AS_PATH attribute of a BGP-4 route carries AS_SET path
  630.    segments, then the AS_PATH attribute of the BGP-3 route shall be
  631.    constructed by treating the AS_SET segments as AS_SEQUENCE segments,
  632.    with the resulting AS_PATH being a single AS_SEQUENCE. While this
  633.    procedure loses set/sequence information, it doesn't affect
  634.    protection for routing loops suppression, but may affect policies, if
  635.    the policies are based on the content or ordering of the AS_PATH
  636.    attribute.
  637.  
  638.    While injecting BGP-4 derived NLRI into BGP-3, one needs to be aware
  639.    of the potential information explosion when a given IP prefix denotes
  640.    a set of consecutive A/B/C class networks. Injection of BGP-4 derived
  641.    NLRI that denotes IP subnets requires the BGP speaker to inject the
  642.    corresponding network into BGP-3. The local system shall provide
  643.    mechanisms to control the exchange of routing information between
  644.    BGP-3 and BGP-4.  Specifically, a conformant implementation is
  645.    required to support all of the following options when injecting BGP-4
  646.    received routing information into BGP-3:
  647.  
  648.        - inject default only (0.0.0.0), no export of any other NLRI
  649.  
  650.        - allow controlled deaggregation, but only of specific routes;
  651.          allow export of non-aggregated NLRI
  652.  
  653.        - allow export of only non-aggregated NLRI
  654.  
  655.    The exchange of routing information via BGP-3 between a BGP speaker
  656.    participating in BGP-4 and a pure BGP-3 speaker may occur  only at
  657.    the autonomous system boundaries. Within a single autonomous system
  658.    BGP conversations between all the BGP speakers of that autonomous
  659.    system have to be either BGP-3 or BGP-4, but not a mixture.
  660.  
  661. 9. Operations over Switched Virtual Circuits
  662.  
  663.    When using BGP over Switched Virtual Circuit (SVC) subnetworks it may
  664.    be desirable to minimize traffic generated by BGP. Specifically, it
  665.    may be desirable to eliminate traffic associated with periodic
  666.    KEEPALIVE messages.  BGP includes a mechanism for operation over
  667.    switched virtual circuit (SVC) services which avoids keeping SVCs
  668.    permanently open and allows it to eliminates periodic sending of
  669.    KEEPALIVE messages.
  670.  
  671.  
  672.  
  673.  
  674. Rekhter & Gross                                                [Page 12]
  675.  
  676. RFC 1772                   BGP-4 Application                  March 1995
  677.  
  678.  
  679.    This section describes how to operate without periodic KEEPALIVE
  680.    messages to minimise SVC usage when using an intelligent SVC circuit
  681.    manager.  The proposed scheme may also be used on "permanent"
  682.    circuits, which support a feature like link quality monitoring or
  683.    echo request to determine the status of link connectivity.
  684.  
  685.    The mechanism described in this section is suitable only between the
  686.    BGP speakers that are directly connected over a common virtual
  687.    circuit.
  688.  
  689. 9.1 Establishing a BGP Connection
  690.  
  691.    The feature is selected by specifying zero Hold Time in the OPEN
  692.    message.
  693.  
  694. 9.2 Circuit Manager Properties
  695.  
  696.    The circuit manager must have sufficient functionality to be able to
  697.    compensate for the lack of periodic KEEPALIVE messages:
  698.  
  699.        - It must be able to determine link layer unreachability in a
  700.          predictable finite period of a failure occurring.
  701.  
  702.        - On determining unreachability it should:
  703.  
  704.                 - start a configurable dead timer (comparable to a
  705.                   typical Hold timer value).
  706.  
  707.                 - attempt to re-establish the Link Layer connection.
  708.  
  709.  
  710.        - If the dead timer expires it should:
  711.  
  712.                 - send an internal circuit DEAD indication to TCP.
  713.  
  714.        - If the connection is re-established it should:
  715.  
  716.                 - cancel the dead timer.
  717.  
  718.                 - send an internal circuit UP indication to TCP.
  719.  
  720. 9.3 TCP Properties
  721.  
  722.    A small modification must be made to TCP to process internal
  723.    notifications from the circuit manager:
  724.  
  725.        - DEAD: Flush transmit queue and abort TCP connection.
  726.  
  727.  
  728.  
  729.  
  730. Rekhter & Gross                                                [Page 13]
  731.  
  732. RFC 1772                   BGP-4 Application                  March 1995
  733.  
  734.  
  735.        - UP: Transmit any queued data or allow an outgoing TCP call to
  736.          proceed.
  737.  
  738. 9.4 Combined Properties
  739.  
  740.    Some implementations may not be able to guarantee that the BGP
  741.    process and the circuit manager will operate as a single entity; i.e.
  742.    they can have a separate existence when the other has been stopped or
  743.    has crashed.
  744.  
  745.    If this is the case, a periodic two-way poll between the BGP process
  746.    and the circuit manager should be implemented.  If the BGP process
  747.    discovers the circuit manager has gone away it should close all
  748.    relevant TCP connections.  If the circuit manager discovers the BGP
  749.    process has gone away it should close all its connections associated
  750.    with the BGP process and reject any further incoming connections.
  751.  
  752. 10. Conclusion
  753.  
  754.    The BGP protocol provides a high degree of control and flexibility
  755.    for doing interdomain routing while enforcing policy and performance
  756.    constraints and avoiding routing loops. The guidelines presented here
  757.    will provide a starting point for using BGP to provide more
  758.    sophisticated and manageable routing in the Internet as it grows.
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Rekhter & Gross                                                [Page 14]
  787.  
  788. RFC 1772                   BGP-4 Application                  March 1995
  789.  
  790.  
  791. Appendix A. The Interaction of BGP and an IGP
  792.  
  793.    This section outlines methods by which BGP can exchange routing
  794.    information with an IGP. The methods outlined here are not proposed
  795.    as part of the standard BGP usage at this time.  These methods are
  796.    outlined for information purposes only.  Implementors may want to
  797.    consider these methods when importing IGP information.
  798.  
  799.    This is general information that applies to any generic IGP.
  800.  
  801.    Interaction between BGP and any specific IGP is outside the scope of
  802.    this section.  Methods for specific IGP's should be proposed in
  803.    separate documents.  Methods for specific IGP's could be proposed for
  804.    standard usage in the future.
  805.  
  806. Overview
  807.  
  808.    By definition, all transit AS's must be able to carry traffic which
  809.    originates from and/or is destined to locations outside of that AS.
  810.    This requires a certain degree of interaction and coordination
  811.    between BGP and the Interior Gateway Protocol (IGP) used by that
  812.    particular AS. In general, traffic originating outside of a given AS
  813.    is going to pass through both interior gateways (gateways that
  814.    support the IGP only) and border gateways (gateways that support both
  815.    the IGP and BGP). All interior gateways receive information about
  816.    external routes from one or more of the border gateways of the AS via
  817.    the IGP.
  818.  
  819.    Depending on the mechanism used to propagate BGP information within a
  820.    given AS, special care must be taken to ensure consistency between
  821.    BGP and the IGP, since changes in state are likely to propagate at
  822.    different rates across the AS. There may be a time window between the
  823.    moment when some border gateway (A) receives new BGP routing
  824.    information which was originated from another border gateway (B)
  825.    within the same AS, and the moment the IGP within this AS is capable
  826.    of routing transit traffic to that border gateway (B). During that
  827.    time window, either incorrect routing or "black holes" can occur.
  828.  
  829.    In order to minimize such routing problems, border gateway (A) should
  830.    not advertise to any of its external peers a route to some set of
  831.    exterior destinations associated with a given address prefix X via
  832.    border gateway (B) until all the interior gateways within the AS are
  833.    ready to route traffic destined to these destinations via the correct
  834.    exit border gateway (B). In other words, interior routing should
  835.    converge on the proper exit gateway before/advertising routes via
  836.    that exit gateway to external peers.
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Rekhter & Gross                                                [Page 15]
  843.  
  844. RFC 1772                   BGP-4 Application                  March 1995
  845.  
  846.  
  847. A.2 Methods for Achieving Stable Interactions
  848.  
  849.    The following discussion outlines several techniques capable of
  850.    achieving stable interactions between BGP and the IGP within an
  851.    Autonomous System.
  852.  
  853. A.2.1 Propagation of BGP Information via the IGP
  854.  
  855.    While BGP can provide its own mechanism for carrying BGP information
  856.    within an AS, one can also use an IGP to transport this information,
  857.    as long as the IGP supports complete flooding of routing information
  858.    (providing the mechanism to distribute the BGP information) and one
  859.    pass convergence (making the mechanism effectively atomic). If an IGP
  860.    is used to carry BGP information, then the period of
  861.    desynchronization described earlier does not occur at all, since BGP
  862.    information propagates within the AS synchronously with the IGP, and
  863.    the IGP converges more or less simultaneously with the arrival of the
  864.    new routing information. Note that the IGP only carries BGP
  865.    information and should not interpret or process this information.
  866.  
  867. A.2.2  Tagged Interior Gateway Protocol
  868.  
  869.    Certain IGPs can tag routes exterior to an AS with the identity of
  870.    their exit points while propagating them within the AS. Each border
  871.    gateway should use identical tags for announcing exterior routing
  872.    information (received via BGP) both into the IGP and when propagating
  873.    this information to other internal peers (peers within the same AS).
  874.    Tags generated by a border gateway must uniquely identify that
  875.    particular border gateway--different border gateways must use
  876.    different tags.
  877.  
  878.    All Border Gateways within a single AS must observe the following two
  879.    rules:
  880.  
  881.      1.  Information received from an internal peer by a border gateway
  882.          A declaring a set of destination associated with a given
  883.          address prefix to be unreachable must immediately be propagated
  884.          to all of the external peers of A.
  885.  
  886.      2.  Information received from an internal peer by a border gateway
  887.          A about a set of reachable destinations associated with a given
  888.          address prefix X cannot be propagated to any of the external
  889.          peers of A unless/until A has an IGP route to the set of
  890.          destinations covered by X and both the IGP and the BGP routing
  891.          information have identical tags.
  892.  
  893.    These rules guarantee that no routing information is announced
  894.    externally unless the IGP is capable of correctly supporting it. It
  895.  
  896.  
  897.  
  898. Rekhter & Gross                                                [Page 16]
  899.  
  900. RFC 1772                   BGP-4 Application                  March 1995
  901.  
  902.  
  903.    also avoids some causes of "black holes".
  904.  
  905.    One possible method for tagging BGP and IGP routes within an AS is to
  906.    use the IP address of the exit border gateway announcing the exterior
  907.    route into the AS. In this case the "gateway" field in the BGP UPDATE
  908.    message is used as the tag.
  909.  
  910.    An alternate method for tagging BGP and IGP routes is to have BGP and
  911.    the IGP agree on a router ID.  In this case, the router ID is
  912.    available to all BGP (version 3 or higher) speakers.  Since this ID
  913.    is already unique it can be used directly as the tag in the IGP.
  914.  
  915. A.2.3 Encapsulation
  916.  
  917.    Encapsulation provides the simplest (in terms of the interaction
  918.    between the IGP and BGP) mechanism for carrying transit traffic
  919.    across the AS. In this approach, transit traffic is encapsulated
  920.    within an IP datagram addressed to the exit gateway. The only
  921.    requirement imposed on the IGP by this approach is that it should be
  922.    capable of supporting routing between border gateways within the same
  923.    AS.
  924.  
  925.    The address of the exit gateway A for some exterior destination X is
  926.    specified in the BGP identifier field of the BGP OPEN message
  927.    received from gateway A (via BGP) by all other border gateways within
  928.    the same AS. In order to route traffic to destination X, each border
  929.    gateway within the AS encapsulates it in datagrams addressed to
  930.    gateway A. Gateway A then performs decapsulation and forwards the
  931.    original packet to the proper gateway in another AS.
  932.  
  933.    Since encapsulation does not rely on the IGP to carry exterior
  934.    routing information, no synchronization between BGP and the IGP is
  935.    required.
  936.  
  937.    Some means of identifying datagrams containing encapsulated IP, such
  938.    as an IP protocol type code, must be defined if this method is to be
  939.    used.
  940.  
  941.    Note that, if a packet to be encapsulated has length that is very
  942.    close to the MTU, that packet would be fragmented at the gateway that
  943.    performs encapsulation.
  944.  
  945. A.2.4  Pervasive BGP
  946.  
  947.    If all routers in an AS are BGP speakers, then there is no need to
  948.    have any interaction between BGP and an IGP.  In such cases, all
  949.    routers in the AS already have full information of all BGP routes.
  950.    The IGP is then only used for routing within the AS, and no BGP
  951.  
  952.  
  953.  
  954. Rekhter & Gross                                                [Page 17]
  955.  
  956. RFC 1772                   BGP-4 Application                  March 1995
  957.  
  958.  
  959.    routes are imported into the IGP.
  960.  
  961.    For routers to operate in this fashion, they must be able to perform
  962.    a recursive lookup in their routing table.  The first lookup will use
  963.    a BGP route to establish the exit router, while the second lookup
  964.    will determine the IGP path to the exit router.
  965.  
  966.    Since the IGP carries no external information in this scenario, all
  967.    routers in the AS will have converged as soon as all BGP speakers
  968.    have new information about this route.  Since there is no need to
  969.    delay for the IGP to converge, an implementation may advertise these
  970.    routes without further delay due to the IGP.
  971.  
  972. A.2.5  Other Cases
  973.  
  974.    There may be AS's with IGPs which can neither carry BGP information
  975.    nor tag exterior routes (e.g., RIP). In addition, encapsulation may
  976.    be either infeasible or undesirable. In such situations, the
  977.    following two rules must be observed:
  978.  
  979.      1.  Information received from an internal peer by a border gateway
  980.          A declaring a destination to be unreachable must immediately be
  981.          propagated to all of the external peers of A.
  982.  
  983.      2.  Information received from an internal peer by a border gateway
  984.          A about a reachable destination X cannot be propagated to any
  985.          of the external peers of A unless A has an IGP route to X and
  986.          sufficient time has passed for the IGP routes to have
  987.          converged.
  988.  
  989.    The above rules present necessary (but not sufficient) conditions for
  990.    propagating BGP routing information to other AS's. In contrast to
  991.    tagged IGPs, these rules cannot ensure that interior routes to the
  992.    proper exit gateways are in place before propagating the routes to
  993.    other AS's.
  994.  
  995.    If the convergence time of an IGP is less than some small value X,
  996.    then the time window during which the IGP and BGP are unsynchronized
  997.    is less than X as well, and the whole issue can be ignored at the
  998.    cost of transient periods (of less than length X) of routing
  999.    instability. A reasonable value for X is a matter for further study,
  1000.    but X should probably be less than one second.
  1001.  
  1002.    If the convergence time of an IGP cannot be ignored, a different
  1003.    approach is needed. Mechanisms and techniques which might be
  1004.    appropriate in this situation are subjects for further study.
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010. Rekhter & Gross                                                [Page 18]
  1011.  
  1012. RFC 1772                   BGP-4 Application                  March 1995
  1013.  
  1014.  
  1015. References
  1016.  
  1017.    [1] Rekhter Y., and T. Li, "A Border Gateway Protocol 4 (BGP-4), RFC
  1018.        1771, T.J. Watson Research Center, IBM Corp., cisco Systems,
  1019.        March 1995.
  1020.  
  1021.    [2] Braun, H-W., "Models of Policy Based Routing", RFC 1104,
  1022.        Merit/NSFNET, June 1989.
  1023.  
  1024.    [3] Fuller, V., Li, T., Yu, J., and K. Varadhan, "Supernetting:  an
  1025.        Address Assignment and Aggregation Strategy", RFC1519, BARRNet,
  1026.        cisco, MERIT, OARnet, September 1993.
  1027.  
  1028. Security Considerations
  1029.  
  1030.    Security issues are not discussed in this memo.
  1031.  
  1032. Authors' Addresses
  1033.  
  1034.    Yakov Rekhter
  1035.    T.J. Watson Research Center IBM Corporation
  1036.    P.O. Box 704, Office H3-D40
  1037.    Yorktown Heights, NY 10598
  1038.  
  1039.    Phone: +1 914 784 7361
  1040.    EMail: yakov@watson.ibm.com
  1041.  
  1042.  
  1043.    Phill Gross
  1044.    MCI Data Services Division
  1045.    2100 Reston Parkway, Room 6001,
  1046.    Reston, VA 22091
  1047.  
  1048.    Phone: +1 703 715 7432
  1049.    EMail: 0006423401@mcimail.com
  1050.  
  1051.  
  1052.    IETF IDR WG mailing list: bgp@ans.net
  1053.    To be added: bgp-request@ans.net
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Rekhter & Gross                                                [Page 19]
  1067.  
  1068.